delay)delay)delay over battery - without outliers)This document analyses the self-developed scheduler component in Android-based mobile devices as part of the SyMptOMS project. This sofware component tested here is called NativeScript Task Dispatcher, that’s a NativeScript plugin aimed to ease mobile app’s tasks definition and the execution of task workflows in background, regardless of whether the app is visible to the user or not. NativeScript Task Dispatcher is publicy available as open source software.
To create the PDF of the computational notebook you can run the following commands in a new R session. If you have problems rendering the PDF you can execute each chunk independently in RStudio.
This document does not install the required R packages by default. You can run the script install.R to install all required dependencies on a new R installation, or use install.packages(..) to install missing R packages.
The plots and tables use the packages ggplot2, knitr::kable(), kableExtra and timetk.
Required libraries and runtime environment description are as follows.
library(tidyverse)
library(kableExtra)
library(here)
# library(googledrive)
library(lubridate)
library(stringr)
library(scales)
# library(plotly)
library(grid)
library(gridBase)
library(gridExtra)
# library(egg)
library(timetk)
Log files are stored in shared gdrvie folder. This notebook downloads them locally in the folder data-raw.
| experiment | gsheets_name | gsheets_link |
|---|---|---|
| #1 | AD_BQ.csv | https://drive.google.com/open?id=1fP9r0S8ORa689yHRtfCtYQothLuGcCw3 |
| #1 | AD_NV.csv | https://drive.google.com/open?id=1l-vnaT-Smy0SegArIz5A108-IQ2_jmVV |
| #1 | AD_A1.csv | https://drive.google.com/open?id=1gzk1ezN5t5yBv2RnbznUqvalDx97eu3o |
| #1 | BA_H9.csv | https://drive.google.com/open?id=1BLXO4Rvz6ppWFJe5oN9Y0hKh__ypofxk |
| #1 | BA_MO.csv | https://drive.google.com/open?id=1RizGjKR8QLOdJna7qGPP7dYX9WWAysO4 |
| #2 | BA_BQ.csv | https://drive.google.com/open?id=1rfaooLZ0Up0gNx1SCA92TV1JFxcLU0sk |
| #2 | BA_NV.csv | https://drive.google.com/open?id=1_KIXX5FGXv7MO37QbUDnd_KGqiGihiMI |
| #2 | BA_A1.csv | https://drive.google.com/open?id=1LezrtyB9i4K7cQsmI78E0v_KaOyhZcXI |
| #2 | AD_H9.csv | https://drive.google.com/open?id=1ISjsfSLZt6n9miryQtDr-tsZV9bfbCDT |
| #2 | AD_MO.csv | https://drive.google.com/open?id=1bx2RVNz05qVKGr-32GI-ZIOKQWlqKBPz |
Raw data files are cleaned and merged together into a single file stored in the folder data. New fields such as dates breakdown are computed too.
Key Variables:
quantitative (interval)
plan_date (datetime): task planning time.exec_date (datetime): task execution time.quantitative (ratio)
delay (numeric): execution delay in seconds ((exec_date - plan_date) - 60).categorital (ordinal)
battery(numeric): battery levelcategorical (nominal)
device_id/device_name: device identifier/nameexp_id: experiment identifierscheduler: scheduler type| # exp | Type scheduler | Device | # records | Start | End | Min | Bottom whisker | 1st Qu. | Median | Mean | 3rd Qu. | Top whisker | Max |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| #1 | Advanced | BQ Aquaris V | 21391 | 2020-03-30 12:15:03 | 2020-04-14 13:07:57 | -48.591 | 0.235 | 0.546 | 0.651 | 0.769 | 0.754 | 1.065 | 61.204 |
| Nvidia Shield Tablet | 21453 | 2020-03-30 12:15:03 | 2020-04-14 13:08:14 | -52.811 | -0.882 | 0.052 | 0.241 | 0.673 | 1.043 | 2.518 | 103.849 | ||
| Xiaomi Mi A1 | 21465 | 2020-03-30 12:23:27 | 2020-04-14 13:07:50 | -60.925 | -0.840 | 0.088 | 0.269 | 0.493 | 0.838 | 1.945 | 68.872 | ||
| Basic | Honor 9 | 21574 | 2020-03-30 12:00:03 | 2020-04-14 13:01:35 | -0.824 | -0.094 | 0.068 | 0.087 | 0.311 | 0.187 | 0.364 | 295.963 | |
| Motorola Moto G | 21619 | 2020-03-30 12:00:07 | 2020-04-14 13:01:16 | -0.183 | -0.183 | 0.062 | 0.100 | 0.875 | 0.289 | 0.629 | 60.896 | ||
| #2 | Advanced | Honor 9 | 19377 | 2020-04-15 11:00:02 | 2020-04-29 12:59:15 | -59.535 | -0.423 | 0.167 | 0.225 | 0.591 | 0.842 | 1.853 | 93.032 |
| Motorola Moto G | 19735 | 2020-04-16 12:09:53 | 2020-04-30 12:58:44 | -30.166 | -0.212 | 0.117 | 0.167 | 2.092 | 0.782 | 1.778 | 126.487 | ||
| Basic | BQ Aquaris V | 20146 | 2020-04-15 11:16:26 | 2020-04-29 13:00:20 | -0.111 | 0.065 | 0.280 | 0.297 | 0.390 | 0.424 | 0.639 | 34.412 | |
| Nvidia Shield Tablet | 3528 | 2020-04-15 11:16:18 | 2020-04-17 22:27:06 | -0.871 | -0.871 | 0.021 | 0.122 | 0.431 | 1.007 | 2.085 | 4.841 | ||
| Xiaomi Mi A1 | 10832 | 2020-04-15 11:16:23 | 2020-04-23 00:52:00 | -0.905 | -0.661 | 0.066 | 0.302 | 0.405 | 0.614 | 1.416 | 108.035 |
Observations on the above table :
181.120 records in total.
50.6% (91.582/181.120) is the interquartile range or IQR, i.e. the middle 50% of the data.
39.6% (71.769/181.120) represent the reasonable extremes of the data, i.e. these whisker values are the minimum and maximum values that do not exceed 1.5 × IQR.
9.8% (17.769/181.120) are outliers, i.e. values beyond the top and bottom whiskers.
Nvidia Shield Tablet has stopped triggering alarms on 2020-04-17 22:27:06 when running the basic scheduler. Since there’s no watchdog in the basic version, this device is not going to trigger alarms anymore. Died!
Xiaomi Mi A1 has stopped triggering alarms on 2020-04-23 00:52:00 when running the basic scheduler. An explanation may be that Huawei/Honor smartphones on Android 9+ have a Launch Records where the OS records how much times an app has been launched by itself, so the OS has the possibility to detect this kind of apps. In these smartphones, Huawei also introduced a new task killer (Power Genius) which kills everything that is not whitelisted by Huawei, and does not give users any configuration options. Therefore, the Power Genius uses the information from the Launch Records to kill the scheduled alarms
delay)## Adding missing grouping variables: `device_id`
## Adding missing grouping variables: `device_id`